class code4 {
    //有效的数独
    boolean[][] checkRow;
    boolean[][] checkCol;
    boolean[][][] checkGrid;
    public boolean isValidSudoku(char[][] board) {
        checkRow = new boolean[9][10];//第2行是否出现n这个数
        checkCol = new boolean[9][10];
        checkGrid = new boolean[3][3][10];//[][]这个矩阵是否出现n这个数

        for(int i=0;i<9;i++) {
            for(int j=0;j<9;j++) {
                if(board[i][j] != '.') {
                    int num = board[i][j] - '0';
                    if(checkCol[i][num] || checkRow[j][num] || checkGrid[i/3][j/3][num]) {
                        return false;
                    }
                    checkCol[i][num] = checkRow[j][num] = checkGrid[i/3][j/3][num] = true;
                }
            }
        }
        return true;
    }
}